Consulta de Guías Docentes



Academic Year/course: 2022/23

534 - Master's Degree in Informatics Engineering

62222 - High Performance Computing


Syllabus Information

Academic Year:
2022/23
Subject:
62222 - High Performance Computing
Faculty / School:
110 - Escuela de Ingeniería y Arquitectura
Degree:
534 - Master's Degree in Informatics Engineering
ECTS:
6.0
Year:
1
Semester:
First semester
Subject Type:
Compulsory
Module:
---

1. General information

1.1. Aims of the course

The course and its expected outcomes respond to the following approaches and objectives:

With a strong applied character, upon successful completion of the subject, each student should have achieved the following objectives:

  • To master the concepts and tools that will allow him/her to have acquired the training as a professional, technologist and researcher in the field of high performance computing.
  • To have the necessary foundations to make use of the resources of large installations and supercomputers in the resolution of real-world problems, as well as the analysis and evaluation of the results obtained.
  • To be adequately prepared (with the necessary skills) to join innovation, research and development centers or departments, technology parks, industrial parks, and high-tech centers that make use of high-performance computing.

These approaches and objectives are not specifically aligned with the Sustainable Development Goals (SDGs) of the United Nations Agenda 2030 (https://www.un.org/sustainabledevelopment/es/).

1.2. Context and importance of this course in the degree

The importance of this course is to know the state of the art of high performance computing (hardware support and programming paradigms) and its relation with the simulation of continuous and discrete phenomena, its industrial, scientific and technological applications, as well as the open problems that exist today.

1.3. Recommendations to take this course

There is no requirement or special recommendation to take the course.

2. Learning goals

2.1. Competences

Upon passing the course, the student will be more competent to....

Acquire the following basic and general competences:

CG-01 - Ability to project, calculate and design products, processes and facilities in all areas of Computer Engineering.

CG-03 - Ability to lead, plan and supervise multidisciplinary teams.

CG-04 - Ability for mathematical modeling, calculation and simulation in technological and business engineering centers, particularly in research, development and innovation tasks in all the fields related to Computer Engineering.

CG-05 - Ability for the elaboration, strategic planning, direction, coordination and technical and economic management of projects in all areas of Computer Engineering following quality and environmental criteria.

CG-08 - Ability to apply the knowledge acquired and to solve problems in new or unfamiliar environments within broader and multidisciplinary contexts, being able to integrate this knowledge.

GC-11 - Ability to acquire advanced knowledge and demonstrate, in a scientific and technological or highly specialized research context, a detailed and grounded understanding of the theoretical and practical aspects and methodology of work in one or more fields of study.

GC-12 - Ability to apply and integrate their knowledge, understanding of knowledge, scientific rationale and problem-solving skills in new and loosely defined environments, including multidisciplinary research and highly specialized professional contexts.

GC-13 - Ability to evaluate and select the appropriate scientific theory and the precise methodology of their fields of study to formulate judgments from incomplete or limited information including, when necessary and relevant, a reflection on the social or ethical responsibility linked to the solution proposed in each case.

GC-14 - Ability to predict and control the evolution of complex situations through the development of new and innovative work methodologies adapted to the specific scientific/research, technological or professional field, in general multidisciplinary, in which their activity is developed.

GC-15 - Ability to transmit in a clear and unambiguous way to a specialized or non-specialized audience, results from scientific and technological research or from the most advanced innovation field, as well as the most relevant foundations on which they are based.

GC-16 - Ability to develop sufficient autonomy to participate in research projects and scientific or technological collaborations within their thematic area, in interdisciplinary contexts and, where appropriate, with a high component of knowledge transfer.

CG-17 - Ability to take responsibility for their own professional development and specialization in one or more fields of study.

CB6 - Possess and understand knowledge that provides a basis or opportunity to be original in the development and/or application of ideas, often in a research context.

CB7 - That students know how to apply acquired knowledge and problem-solving skills in new or unfamiliar environments within broader (or multidisciplinary) contexts related to their area of study.

CB8 - That students are able to integrate knowledge and face the complexity of making judgments based on information that, being incomplete or limited, includes reflections on the social and ethical responsibilities linked to the application of their knowledge and judgments.

CB9 - That students know how to communicate their conclusions and the ultimate knowledge and reasons that support them to specialized and non-specialized audiences in a clear and unambiguous way.

CB10 - That students possess the learning skills that will enable them to continue studying in a way that will be largely self-directed or autonomous.

To acquire the following specific competences:

CTI-01 - Ability to model, design, define the architecture, implement, manage, operate, administer and maintain computer applications, networks, systems, services and content.

CTI-07 - Ability to understand and be able to apply advanced knowledge of high performance computing and numerical or computational methods to engineering problems.

2.2. Learning goals

The student should be able to:

1. Analyze, compare and evaluate different architectures for supercomputing.

2. Define, evaluate and select the most appropriate architecture and parallel programming paradigm for the execution of a scientific problem.

3. Compare and evaluate design and implementation alternatives for parallel computer applications with different architectures.

4. Deal with emerging architectures

5. Use the appropriate tools for performance analysis of a supercomputer.

6. Interpret the information provided by supercomputer performance analysis tools and infer actions to improve supercomputer performance.

7. Know and use fundamental numerical methods for the approximation of solutions to engineering problems.

8. Develop parallel implementations of the most popular numerical approximation methods for supercomputing systems.

2.3. Importance of learning goals

The learning outcomes of this course provide students with the necessary skills to use the resources of large facilities and supercomputers in the resolution of real-world problems, as well as the analysis and evaluation of the results obtained. The demand for this type of experts is growing both in the research world and in the industry.

3. Assessment (1st and 2nd call)

3.1. Assessment tasks (description of tasks, marking system and assessment criteria)

The student must demonstrate that he/she has achieved the expected learning results through the following evaluation activities

Final open response written test (45%). Learning results: 2, 3, 4, 6, 7 and 8.

Delivery of the results of the subject practices (45%). Learning outcomes: 2, 3, 4, 6, 7 and 8.

Oral presentations and discussions (10%). Learning outcomes: 1, 2, 3, 4, 6 and 8.

Students who do not opt for the evaluation procedure described above, do not pass these tests during the teaching period or would like to improve their grade will have the right to take a global test that will be scheduled within the examination period corresponding to the first or second call.

4. Methodology, learning tasks, syllabus and resources

4.1. Methodological overview

The methodology followed in this course is oriented towards achievement of the learning objectives. A wide range of teaching and learning tasks are implemented, such as

  1. Class attendance. In lectures the teacher explains the course contents and includes illustrative examples. 
  2. Laboratory sessions. Activities with specialized equipment (in the laboratory, computer rooms).
  3. Tutorials. Students can review and discuss with the teacher the materials and topics presented in class.
  4. Assessment. A set of written and oral tests, assignments, projects, etc.
  5. Autonomous work. Preparation of assignments and exercises, study of lectures' contents, preparation of examination, library research, complementary readings, problem-solving, etc. 

4.2. Learning tasks

The course (150 hours) includes the following learning tasks: 

  • Classroom activities (50 hours). Seminars, problem-solving, laboratory sessions, visits, etc.
  • Research assignments and projects (45 hours). 
  • Autonomous work and study (50 hours).
  • Assessment (5 hours). Exam and defense of the course project.

4.3. Syllabus

The course will address the following topics:
Section  1: Numerical simulation

  • Numerical simulation of continuous phenomena
  • Numerical simulation of discrete events
  • Approximations and numerical techniques

Section 2: Architecture and Technology of Supercomputers

  • Shared memory multiprocessor systems. Coherence, consistency
  • Distributed memory multiprocessor systems. Interconnection networks
  • Specific architectures for high performance. Multimedia extensions, GPGPUs

Section 3: Parallel Programming Paradigms

  • Shared memory
    • Vectorization
    • Automatic parallelization. Help the compiler
    • Manual parallelization: OpenMP
  • Distributed memory
    • MPI

Section 4: Optimization of parallel programs

  • Optimization Techniques
  • Metrics and performance analysis tools in supercomputers


These contents will be strengthened through the preparation of case studies in which the acquired knowledge to solve a complex problem will be applied.

4.4. Course planning and calendar

Further information concerning the timetable, classroom, office hours, assessment dates and other details regarding this course, will be provided on the first day of class or please refer to the Center website and course website.

 


Curso Académico: 2022/23

534 - Máster Universitario en Ingeniería Informática

62222 - Computación de altas prestaciones


Información del Plan Docente

Año académico:
2022/23
Asignatura:
62222 - Computación de altas prestaciones
Centro académico:
110 - Escuela de Ingeniería y Arquitectura
Titulación:
534 - Máster Universitario en Ingeniería Informática
Créditos:
6.0
Curso:
1
Periodo de impartición:
Primer semestre
Clase de asignatura:
Obligatoria
Materia:
---

1. Información Básica

1.1. Objetivos de la asignatura

La asignatura y sus resultados previstos responden a los siguientes planteamientos y objetivos:

Con un fuerte carácter aplicado, tras finalizar con éxito de la asignatura, cada estudiante deberá haber conseguido los siguientes objetivos:

  • Dominar los conceptos y herramientas que le permitan haber adquirido la formación como profesional, tecnólogo e investigador en el campo de la computación de altas prestaciones.
  • Contar con las bases necesarias para hacer uso de los recursos de grandes instalaciones y supercomputadores en la resolución de problemas del mundo real, así como el análisis y evaluación de los resultados obtenidos.
  • Estar adecuadamente preparado (contando con las capacidades necesarias) para incorporarse a centros o departamentos de innovación, investigación y desarrollo, parques tecnológicos, parques industriales, y centros de alta tecnología, que hacen uso de la computación de altas prestaciones.

Estos planteamientos y objetivos no están específicamente alineados con los Objetivos de Desarrollo Sostenible (ODS) de la Agenda 2030 de Naciones Unidas (https://www.un.org/sustainabledevelopment/es/).

1.2. Contexto y sentido de la asignatura en la titulación

La razón de ser de esta asignatura es conocer el estado del arte de la computación de altas prestaciones (soporte hardware y paradigmas de programación) y su relación con la simulación de fenómenos continuos y discretos, sus aplicaciones industriales, científicas y tecnológicas, así como los problemas abiertos que existen en la actualidad.

1.3. Recomendaciones para cursar la asignatura

No existe ningún requisito ni recomendación especial para cursar la asignatura.

2. Competencias y resultados de aprendizaje

2.1. Competencias

Al superar la asignatura, el estudiante será más competente para...

Conseguir adquirir las siguientes competencias básicas y generales:

CG-01 - Capacidad para proyectar, calcular y diseñar productos, procesos e instalaciones en todos los ámbitos de la Ingeniería Informática.

CG-03 - Capacidad para dirigir, planificar y supervisar equipos multidisciplinares.

CG-04 - Capacidad para el modelado matemático, cálculo y simulación en centros tecnológicos y de ingeniería de empresa, particularmente en tareas de investigación, desarrollo e innovación en todos los ámbitos relacionados con la Ingeniería en Informática.

CG-05 - Capacidad para la elaboración, planificación estratégica, dirección, coordinación y gestión técnica y económica de proyectos en todos los ámbitos de la Ingeniería en Informática siguiendo criterios de calidad y medioambientales.

CG-08 - Capacidad para la aplicación de los conocimientos adquiridos y de resolver problemas en entornos nuevos o poco conocidos dentro de contextos más amplios y mulitidisciplinares, siendo capaces de integrar estos conocimientos

CG-11 - Capacidad para adquirir conocimientos avanzados y demostrado, en un contexto de investigación científica y tecnológica o altamente especializado, una comprensión detallada y fundamentada de los aspectos teóricos y prácticos y de la metodología de trabajo en uno o más campos de estudio.

CG-12 - Capacidad para aplicar e integrar sus conocimientos, la comprensión de estos, su fundamentación científica y sus capacidades de resolución de problemas en entornos nuevos y definidos de forma imprecisa, incluyendo contextos de carácter multidisciplinar tanto investigadores como profesionales altamente especializados.

CG-13 - Capacidad para evaluar y seleccionar la teoría científica adecuada y la metodología precisa de sus campos de estudio para formular juicios a partir de información incompleta o limitada incluyendo, cuando sea preciso y pertinente, una reflexión sobre la responsabilidad social o ética ligada a la solución que se proponga en cada caso

CG-14 - Capacidad para predecir y controlar la evolución de situaciones complejas mediante el desarrollo de nuevas e innovadoras metodologías de trabajo adaptadas al ámbito científico/investigador, tecnológico o profesional concreto, en general multidisciplinar, en el que se desarrolle su actividad

CG-15 - Capacidad para transmitir de un modo claro y sin ambigüedades a un público especializado o no, resultados procedentes de la investigación científica y tecnológica o del ámbito de la innovación más avanzada, así como los fundamentos más relevantes sobre los que se sustentan.

CG-16 - Capacidad para desarrollar la autonomía suficiente para participar en proyectos de investigación y colaboraciones científicas o tecnológicas dentro su ámbito temático, en contextos interdisciplinares y, en su caso, con una alta componente de transferencia del conocimiento.

CG-17 - Capacidad para asumir la responsabilidad de su propio desarrollo profesional y de su especialización en uno o más campos de estudio.

CB6 - Poseer y comprender conocimientos que aporten una base u oportunidad de ser originales en el desarrollo y/o aplicación de ideas, a menudo en un contexto de investigación

CB7 - Que los estudiantes sepan aplicar los conocimientos adquiridos y su capacidad de resolución de problemas en entornos nuevos o poco conocidos dentro de contextos más amplios (o multidisciplinares) relacionados con su área de estudio

CB8 - Que los estudiantes sean capaces de integrar conocimientos y enfrentarse a la complejidad de formular juicios a partir de una información que, siendo incompleta o limitada, incluya reflexiones sobre las responsabilidades sociales y éticas vinculadas a la aplicación de sus conocimientos y juicios

CB9 - Que los estudiantes sepan comunicar sus conclusiones y los conocimientos y razones últimas que las sustentan a públicos especializados y no especializados de un modo claro y sin ambigüedades

CB10 - Que los estudiantes posean las habilidades de aprendizaje que les permitan continuar estudiando de un modo que habrá de ser en gran medida autodirigido o autónomo.

 

Conseguir adquirir las siguientes competencias específicas:

CTI-01 - Capacidad para modelar, diseñar, definir la arquitectura, implantar, gestionar, operar, administrar y mantener aplicaciones, redes, sistemas, servicios y contenidos informáticos.

CTI-07 - Capacidad para comprender y poder aplicar conocimientos avanzados de computación de altas prestaciones y métodos numéricos o computacionales a problemas de ingeniería.

 

2.2. Resultados de aprendizaje

El alumno deberá ser capaz de:

 

1. Analizar, comparar y evaluar diferentes arquitecturas para supercomputación

2. Definir, evaluar y seleccionar la arquitectura y el paradigma de programación paralela más adecuados para la ejecución de un problema científico

3. Comparar y evaluar alternativas de diseño e implementación de aplicaciones para computadores paralelos con diferentes arquitecturas

4. Enfrentarse a arquitecturas emergentes

5. Usar las herramientas adecuadas para el análisis de prestaciones de un supercomputador

6. Interpretar la información proporcionada por las herramientas de análisis de prestaciones en supercomputadores e inferir acciones para mejorar su rendimiento

7. Conocer y usar métodos numéricos fundamentales para la aproximación de soluciones de problemas en la ingeniería

8. Desarrollar implementaciones paralelas de los métodos de aproximación numérica más conocidos para sistemas de supercomputación

 

 

2.3. Importancia de los resultados de aprendizaje

Los resultados de aprendizaje de esta asignatura aportan al alumno las capacidades necesarias para el uso de los recursos de grandes instalaciones y supercomputadores en la resolución de problemas del mundo real, así como el análisis y evaluación de los resultados obtenidos. La demanda de este tipo de expertos es creciente tanto en el mundo de la investigación como en la industria.

3. Evaluación

3.1. Tipo de pruebas y su valor sobre la nota final y criterios de evaluación para cada prueba

El estudiante deberá demostrar que ha alcanzado los resultados de aprendizaje previstos mediante las siguientes actividades de evaluacion

Prueba final presencial escrita de respuesta abierta. (45%). Resultados de aprendizaje: 2, 3, 4, 6, 7 y 8

Entrega de resultados de la prácticas de asignatura. (45%). Resultados de aprendizaje: 2, 3, 4, 6, 7 y 8

Presentaciones y debates de forma oral (10%). Resultados de aprendizaje: 1, 2, 3, 4, 6 y 8

 

El estudiante que no opte por el procedimiento de evaluación descrito anteiormente, no supere dichas pruebas durante el periodo docente o que quisiera mejorar su calificación tendrá derecho a realizar una prueba global  que será programada dentro del periodo de exámenes correspondiente a la primera o segunda convocatoria.

4. Metodología, actividades de aprendizaje, programa y recursos

4.1. Presentación metodológica general

El proceso de aprendizaje que se ha diseñado para esta asignatura se basa en lo siguiente:

Las actividades de enseñanza y aprendizaje presenciales se basan en:

  1. Clase presencial. Exposición de contenidos mediante presentación o explicación por parte de un profesor (posiblemente incluyendo demostraciones).
  2. Laboratorio. Actividades desarrolladas en espacios especiales con equipamiento especializado (laboratorio, aulas informáticas).
  3. Tutoría. Período de instrucción realizado por un tutor con el objetivo de revisar y discutir los materiales y temas presentados en las clases.
  4. Evaluación. Conjunto de pruebas escritas, orales, prácticas, proyectos, trabajos, etc. utilizados en la evaluación del progreso del estudiante

 Las actividades de enseñanza y aprendizaje no presenciales se basan en:

  1. Trabajos prácticos. Preparación de actividades para exponer o entregar en las clases prácticas.
  2. Estudio teórico. Estudio de contenidos relacionados con las “clases teóricas”: incluye cualquier actividad de estudio que no se haya computado en el apartado anterior (estudiar exámenes, trabajo en biblioteca, lecturas complementarias, hacer problemas y ejercicios, etc.)

4.2. Actividades de aprendizaje

El programa que se ofrece al estudiante para ayudarle a lograr los resultados previstos comprende las siguientes actividades...

Trabajo del estudiante

La asignatura consta de 6 créditos ECTS que corresponden con 150 horas estimadas de trabajo del alumno distribuidas del siguiente modo:

  • Actividades presenciales: 50 h (Clase magistral, Resolución de problemas y casos, Prácticas de laboratorio y Prácticas especiales)

  • Realización de trabajos de aplicación o investigación prácticos: 45 h
  • Estudio de teoría: 50 h
  • Pruebas de evaluación: 5 h

4.3. Programa

El programa de la asignatura comprende los siguientes bloques y contenidos de los mismos:

 

Bloque 1: Simulación numérica

  • Simulación numérica de fenómenos continuos
  • Simulación numérica de fenómenos discretos
  • Aproximaciones y técnicas numéricas

 Bloque 2: Arquitectura y Tecnología de Supercomputadores

  • Sistemas multiprocesador de memoria compartida. Coherencia, consistencia.
  • Sistemas multiprocesador de memoria distribuida. Redes de interconexión
  • Arquitecturas específicas para alto rendimiento. Extensiones multimedia, GPGPUs

 Bloque 3: Paradigmas de programación paralela

  • Memoria compartida
    • Paralelización automática. Ayuda al compilador
    • Paralelización manual: OpenMP
    • Vectorización
  • Memoria distribuida: MPI

 Bloque 4: Optimización de programas paralelos

  • Técnicas de optimización
  • Métricas y herramientas de análisis de rendimiento en supercomputadores

Los contenidos de estos bloques se reforzarán a través del desarrollo de casos prácticos en los que se aplicarán los conocimientos adquiridos para resolver un problema complejo.

 

4.4. Planificación de las actividades de aprendizaje y calendario de fechas clave

Calendario de sesiones presenciales y presentación de trabajos

Los horarios de todas las clases y fechas de las sesiones de prácticas se anunciarán con suficiente antelación a través de las webs del centro y de la asignatura.

Las fechas de entrega y seguimiento de los trabajos prácticos se darán a conocer con suficiente antelación en clase.

Entre las principales actividades previstas se encuentran la exposición de los contenidos teóricos, el planteamiento y resolución de problemas, la realización de las prácticas propuestas y la superación de las pruebas de evaluación.

La organización docente prevista de las sesiones presenciales en el campus Río Ebro es la siguiente:

  • Clases magistrales
  • Resolución de problemas y casos
  • Prácticas de laboratorio

El calendario de clases, prácticas y exámenes, así como las fechas de entrega de trabajos de evaluación se anunciará con suficiente antelación.